package tables; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; import models.Account; public class InfoTableModel extends AbstractTableModel { private String[] columnNames = { "ID", "TOTAL", "PIN", }; private ArrayList<Account> accounts; public InfoTableModel() { accounts = new ArrayList<Account>(); } public InfoTableModel(ArrayList<Account> accounts) { this.accounts = accounts; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return accounts.size(); } public String getColumnName(int column) { return columnNames[column]; } @Override public Object getValueAt(int row, int column) { Account account = getAccount(row); switch (column) { case 0: return account.getID(); case 1: return account.getTotal(); case 2: return account.getPin(); } return account; } public Account getAccount(int row) { return accounts.get(row); } public void addAccount(Account account) { insertAccount(getRowCount(), account); } public void insertAccount(int row, Account account) { accounts.add(row, account); fireTableRowsInserted(row, row); } public void removeAccount(int row) { accounts.remove(row); fireTableRowsDeleted(row, row); } }